/**
 * 整体风格设置
 * @param color - 主题色
 * @param mode - 模式
 */
export type Theme = {
  color: string;
  mode: 'dark' | 'light' | 'night';
};
/**
 * 导航设置
 * @param layout - 导航布局，可选 side 和 head，分别为侧边导航和顶部导航
 * @param fixedHeader - 固定侧边栏，true:固定，false:不固定
 * @param fixedSide - 固定头部状态栏，true:固定，false:不固定
 */
export type Navigation = {
  layout: 'side' | 'top' | 'mix';
  fixedHeader: boolean;
  fixedSide: boolean;
};

/**
 * 其他设置
 * @param tagViews - 多页签模式
 * @param hideSettings -隐藏设置抽屉
 */
export type Others = {
  tagViews: boolean;
  hideSettings: boolean;
};

/**
 * 页面切换动画
 * @param name 动画效果
 * @param direction 动画方向
 */
export type Animate = {
  disabled: boolean;
  name: 'back' | 'bounce' | 'fade' | 'flip' | 'lightSpeed' | 'rotate' | 'roll' | 'zoom' | 'slide';
  directions:
    | 'default'
    | 'left'
    | 'right'
    | 'down'
    | 'up'
    | 'downBig'
    | 'upBig'
    | 'leftBig'
    | 'rightBig'
    | 'topLeft'
    | 'bottomRight'
    | 'topRight'
    | 'bottomLeft'
    | 'downLeft'
    | 'upRight'
    | 'downRight'
    | 'upLeft'
    | 'x'
    | 'y';
};

/**
 * 系统设置
 * @param title 系统标题
 * @param logo 系统logo
 */
export type System = {
  title: string;
  logo: string;
};

/**
 * 主题设置
 * @param theme - 主题色
 * @param navigation - 导航设置
 * @param others - 其他设置
 * @param navigation - 页面切换动画
 */
export type Settings = {
  system: System;
  theme: Theme;
  navigation: Navigation;
  animate: Animate;
  others: Others;
  locale: any;
  size: 'large' | 'default' | 'small';
};
